using AiQiuQuan.Sport.Model.Enums;

namespace AiQiuQuan.Sport.Model.Models
{
    /// <summary>
    /// 场馆订单dto
    /// </summary>
    public class SiteOrderDto : BaseDto
    {
        /// <summary>
        /// 业务订单号
        /// </summary>
        public string SO_OrderNo { get; set; }

        /// <summary>
        /// 微信订单号
        /// </summary>
        public string? SO_WeChatOrderNo { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? SO_OrderRemark { get; set; }

        /// <summary>
        /// 用户id
        /// </summary>
        public Guid? BaseUserID { get; set; }

        /// <summary>
        /// 场馆id
        /// </summary>
        public Guid VenueInfoID { get; set; }

        /// <summary>
        /// 订单总金额
        /// </summary>
        public decimal SO_TotalPrice { get; set; }

        /// <summary>
        /// 优惠金额
        /// </summary>
        public decimal SO_DiscountPrice { get; set; }

        /// <summary>
        /// 实际金额
        /// </summary>
        public decimal SO_ActualPrice { get; set; }

        /// <summary>
        /// 订单状态：1待支付、2待使用、3待评价、4退款售后、5已完成
        /// </summary>
        public VenueOrderStateEnum SO_State { get; set; }

        /// <summary>
        /// 支付方式：1.微信支付、2支付宝支付、3.场馆会员卡支付
        /// </summary>
        public PayTypeEnum? PayType { get; set; }

        /// <summary>
        ///  会员卡类型：1储值卡、2次卡、3打折卡
        /// </summary>
        public MemberCardTypeEnum? MemberCardType { get; set; }

        /// <summary>
        /// 会员卡支付对应的次数、金额，折扣
        /// </summary>
        public decimal? CardAmount { get; set; }

        /// <summary>
        /// 会员卡折扣
        /// </summary>
        public decimal? CardDiscount { get; set; }

        /// <summary>
        /// 用户会员卡ID
        /// </summary>
        public Guid? UserVenueCardId { get; set; }

        /// <summary>
        /// 取消时间
        /// </summary>
        public DateTimeOffset? SO_CancelTime { get; set; }

        /// <summary>
        /// 取消备注
        /// </summary>
        public string? SO_CancelRemark { get; set; }

        /// <summary>
        /// 取消原因
        /// </summary>
        public Guid? SO_CancelReason { get; set; }

        /// <summary>
        /// 取消角色
        /// </summary>
        public OrderCancelTypeEnum? SO_CancelRole { get; set; }

        /// <summary>
        /// 使用积分
        /// </summary>
        public int? SO_UseIntegral { get; set; }

        /// <summary>
        /// 订单信息说明
        /// </summary>
        public string? SO_Explain { get; set; }

        /// <summary>
        /// 场馆名称
        /// </summary>
        public string VenueName { get; set; }

        /// <summary>
        /// 场地名称
        /// </summary>
        public string SiteName { get; set; }

        /// <summary>
        /// 场地日期
        /// </summary>
        public DateTimeOffset? SiteDate { get; set; }

        /// <summary>
        /// 场地开始时间
        /// </summary>
        public string? StieStartTime { get; set; }

        /// <summary>
        /// 场地结束时间
        /// </summary>
        public string? SiteEndTime { get; set; }

        /// <summary>
        /// 用户昵称
        /// </summary>
        public string? NickName { get; set; }

        /// <summary>
        /// 用户电话
        /// </summary>
        public string? PhoneNo { get; set; }

        /// <summary>
        /// 支付状态
        /// </summary>
        public PayOrderStateEnum? PayState { get; set; }

        /// <summary>
        /// 退款金额
        /// </summary>
        public decimal? RefundAmount { get; set; }
    }
}